#pragma once

#include "QuantizationMatrix.h"
#include "Matrix.h"

class Quantization
{
private:
	QuantizationMatrix _quantizationMatrix;
public:
	__host__ __device__ Quantization() {}
	__host__ __device__ Quantization(QuantizationMatrix* qm);
	__host__ __device__ Quantization(const Quantization& src);
	__host__ __device__ Quantization(int* data, int columnLength);
	__host__ __device__ ~Quantization(void);
	__host__ __device__ void performQuantization(Matrix& m);
	__host__ __device__ QuantizationMatrix getQuantizationMatrix() const { return _quantizationMatrix; }
	__host__ __device__ void setQuantizationMatrix(QuantizationMatrix val) { _quantizationMatrix = val; }

	__host__ int* copyToDevice();
};


